//package com.wechat.scheme.servlet;
//
//import com.alibaba.fastjson.JSON;
//import com.wechat.scheme.service.CoreService;
//import com.wechat.scheme.utils.SignUtil;
//import lombok.extern.slf4j.Slf4j;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.web.client.RestTemplate;
//import org.springframework.web.context.support.SpringBeanAutowiringSupport;
//
//import javax.servlet.ServletConfig;
//import javax.servlet.ServletException;
//import javax.servlet.annotation.WebServlet;
//import javax.servlet.http.HttpServlet;
//import javax.servlet.http.HttpServletRequest;
//import javax.servlet.http.HttpServletResponse;
//import java.io.IOException;
//import java.io.PrintWriter;
//
//@Slf4j
//@WebServlet(urlPatterns = "/ws")
//public class WechatServlet extends HttpServlet {
//
//    @Override
//    public void init(ServletConfig config) throws ServletException
//    {
//        SpringBeanAutowiringSupport.processInjectionBasedOnServletContext(this, config.getServletContext());
//    }
//    @Autowired
//    private RestTemplate restTemplate;
//
//
//    @Override
//    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//        log.info("enter wechatServlet_doGet method .");
//        // 微信加密签名
//        String signature = req.getParameter("signature");
//        // 时间戳
//        String timestamp = req.getParameter("timestamp");
//        // 随机数
//        String nonce = req.getParameter("nonce");
//        // 随机字符串
//        String echostr = req.getParameter("echostr");
//
//        PrintWriter out = resp.getWriter();
//
//        // 通过检验signature对请求进行校验，若校验成功则原样返回echostr，表示接入成功，否则接入失败
//        if (SignUtil.checkSignature(signature, timestamp, nonce)) {
//            out.print(echostr);
//            log.info("check signature succsss!");
//        }else{
//            log.info("check signature fail!");
//        }
//        out.close();
//    }
//
//    @Override
//    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//        // 将请求、响应的编码均设置为UTF-8（防止中文乱码）
//        log.info(JSON.toJSONString(req.getParameterMap()));
//        req.setCharacterEncoding("UTF-8");
//        resp.setCharacterEncoding("UTF-8");
//        PrintWriter out = resp.getWriter();
//        CoreService coreService = new CoreService();
//        String s = coreService.parseWxRequest(req);
//        // 响应消息，将相应的xml数据转发给微信服务器
////        log.info(restTemplate.toString());//仅仅测试是否能注入restTemplate
//        out.print(s);
//        out.close();
//    }
//}
